Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

294
Vistas
AssertionError [ERR_ASSERTION]: indefinido == 390 en gitlab

Estoy un poco confundido con AssertionError [ERR_ASSERTION]: undefined == 390 en gitlab .

quiero lo siguiente:

La función sumSalaries (obj), para aceptar como parámetro el objeto obj donde los nombres de campo corresponden al nombre de un empleado, mientras que los valores correspondientes son o salario de cada empleado.

Tome el siguiente fragmento de código:

 export default function sumSalaries(obj) { let salaries = { John: 100, Jane: 160, Mike: 130 }; let sum = 0; for (let key in salaries) { if (salaries.hasOwnProperty(key)) { sum += salaries[key]; } } obj = sum; console.log(obj); } sumSalaries();

La prueba debe hacer lo siguiente:

 import sumSalaries from "../test.js"; import assert from "assert"; describe("\n\ntest.js", () => { it("should return the correct sum", () => { [ [ { John: 100, Ann: 160, Pete: 130, }, 390, ], [ { John: 80, Jane: 160, Mike: 190, }, 430, ], [ { Charlie: 84, Victor: 160, Pete: 200, }, 444, ], ].map((obj) => { let salaries = obj[0]; let sum = obj[1]; assert.equal(sumSalaries(salaries), sum); }); }); });

El error que me da gitlab:

 AssertionError [ERR_ASSERTION]: undefined == 390
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Echemos un vistazo a lo que has escrito:

 export default function sumSalaries(obj) { let salaries = { John: 100, Jane: 160, Mike: 130 };

Se supone que su función calcula la suma de los salarios pasados, pero acaba de poner su propia lista fija de ellos aquí. Por lo tanto, su función solo calculará la suma de estos tres salarios.

Luego procede a sumar estos salarios, lo que parece ir bien:

 let sum = 0; for (let key in salaries) { if (salaries.hasOwnProperty(key)) { sum += salaries[key]; } }

El parámetro obj contenía los salarios pasados, pero después de esta línea ahora contiene la suma de los salarios que calculó a partir de su lista fija:

 obj = sum;

Luego escribes esta suma en la consola. Tal vez sea útil para la depuración, pero una vez que haya terminado de depurar, elimine esta línea.

 console.log(obj);

La función finaliza sin encontrar una declaración de return , por lo que su función devuelve undefined . Esto explica por qué está recibiendo afirmaciones sobre undefined == 390 : el undefined es lo que devolvió su función y el 390 era lo que su prueba esperaba devolver.

 }

Entonces, ¿cómo puedes arreglar esto?

En primer lugar, cambie el nombre del parámetro de función obj a salaries y elimine los salarios codificados. Esto permite que su función calcule la suma de los salarios que recibe.

En segundo lugar, una vez que hayas calculado la suma, return .

Debería terminar con lo siguiente, que, después de haberlo probado, parece funcionar:

 export default function sumSalaries(salaries) { let sum = 0; for (let key in salaries) { if (salaries.hasOwnProperty(key)) { sum += salaries[key]; } } return sum; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda